<!DOCTYPE html >
<html>
<head>
    <link rel="stylesheet" href="demos.css" type="text/css" media="screen" />
    
    <script src="../libraries/RGraph.common.core.js" ></script>
    <script src="../libraries/RGraph.common.dynamic.js" ></script>
    <script src="../libraries/RGraph.common.effects.js" ></script>
    <script src="../libraries/RGraph.gauge.js" ></script>
    
    <title>RGraph demo: A customised and adjustable Gauge chart</title>
    
    
    <meta name="robots" content="noindex,nofollow" />
    <meta name="description" content="A customised Gauge chart which can be adjusted" />
     
</head>
<body>

    <!-- Share buttons -->
    <p style="float: right">
        <script>
            document.write('<a href="" target="_blank" onclick="window.open(\'https://www.facebook.com/sharer/sharer.php?u=http://www.rgraph.net' + location.pathname + '\', null, \'top=50,left=50,width=600,height=368\'); return false"><img src="../images/facebook-large.png" width="200" height="43" alt="Share on Facebook" border="0" title="Visit the RGraph Facebook page" id="facebook_link" /></a>&nbsp;');
            document.write('<a href="https://twitter.com/_rgraph" target="_blank" onclick="window.open(\'https://twitter.com/intent/tweet?text=Check%20out%20this%20demo%20of%20RGraph:%202D/3D%20JavaScript%20charts%20-%20Free%20and%20Open%20Source%20http://www.rgraph.net' + location.pathname + '\', null, \'top=50,left=50,width=700,height=400\'); return false"><img src="../images/twitter-large.png" width="200" height="43" alt="Share on Twitter" border="0" title="Mention RGraph on Twitter" id="twitter_link" /></a>');
        </script>
    </p>


    <h1>A customised and adjustable Gauge chart</h1>
    
    <p>
        This Gauge chart doesn't use the built-in adjusting but uses a cutom onclick
        event listener (which you can see below) in order to make the adjusting
        animated.
    </p>

    <canvas id="cvs" width="250" height="250" style="background-color: black; border-radius: 125px; box-shadow: 0 0 25px gray; border: 5px solid #ddd">[No canvas support]</canvas>
    
    <script>
        window.onload = function ()
        {
            var gauge = new RGraph.Gauge({
                id: 'cvs',
                min: 0,
                max: 10,
                value: 7,
                options: {
                    anglesStart: RGraph.PI - (RGraph.PI / 8),
                    anglesEnd: RGraph.TWOPI + (RGraph.PI / 8),
                    shadow: false,
                    textColor: 'white',
                    tickmarksBigColor: 'white',
                    tickmarksMediumColor: 'white',
                    tickmarksSmallColor: 'white',
                    colorsRanges: [],
                    backgroundColor: 'black',
                    borderInner: 'black',
                    borderOuter: 'black',
                    borderOutline: 'black',
                    needleColors: ['red'],
                    needleType: 'line',
                    needleTail: true,
                    needleWidth: 7,
                    centerpinRadius: 0.1,
                    titleTop: 'Speed',
                    titleTopColor: 'white',
                    labelsCentered: true,
                    labelsOffset: 7,
                    textAccessible: true
                }
            }).on('draw', function (obj)
            {
                // This circle becomes the border of the centerpin
                RGraph.path2(obj.context, ['b','a',obj.centerx, obj.centery, 10, 0, RGraph.TWOPI, false,'f','#aaa']);
            }).draw();
            
            //
            // Add a click handler to the canvas to enable adjusting
            //
            gauge.canvas.onclick = function (e)
            {
                var ca  = e.target;
                var obj = ca.__object__;

                var value = obj.getValue(e);
                obj.value = value;
                obj.grow();
            }
        };
    </script>





    <p></p>

    This goes in the documents header:
    <pre class="code">
&lt;script src="RGraph.common.core.js"&gt;&lt;/script&gt;
&lt;script src="RGraph.common.dynamic.js"&gt;&lt;/script&gt;
&lt;script src="RGraph.common.effects.js"&gt;&lt;/script&gt;
&lt;script src="RGraph.gauge.js"&gt;&lt;/script&gt;
</pre>
    
    Put this where you want the chart to show up:
    <pre class="code">
&lt;canvas id="cvs" width="250" height="250" style="background-color: black; border-radius: 125px; box-shadow: 0 0 25px gray; border: 5px solid #ddd"&gt;
    [No canvas support]
&lt;/canvas&gt;
</pre>

    This is the code that generates the chart:
    <pre class="code">
&lt;script&gt;
    window.onload = function ()
    {
        var gauge = new RGraph.Gauge({
            id: 'cvs',
            min: 0,
            max: 10,
            value: 7,
            options: {
                anglesStart: RGraph.PI - (RGraph.PI / 8),
                anglesEnd: RGraph.TWOPI + (RGraph.PI / 8),
                shadow: false,
                textColor: 'white',
                tickmarksBigColor: 'white',
                tickmarksMediumColor: 'white',
                tickmarksSmallColor: 'white',
                colorsRanges: [],
                backgroundColor: 'black',
                borderInner: 'black',
                borderOuter: 'black',
                borderOutline: 'black',
                needleColors: ['red'],
                needleType: 'line',
                needleTail: true,
                centerpinRadius: 0.1,
                titleTop: 'Speed',
                titleTopColor: 'white',
                labelsCentered: true,
                labelsOffset: 7,
                textAccessible: true
            }
        }).on('draw', function (obj)
        {
            <span>// This circle becomes the border of the centerpin</span>
            RGraph.path2(obj.context, ['b','a',obj.centerx, obj.centery, 10, 0, RGraph.TWOPI, false,'f','#aaa']);
        }).draw();
        
        <span>//
        // Add a click handler to the canvas to enable adjusting
        //</span>
        gauge.canvas.onclick = function (e)
        {
            var ca  = e.target;
            var obj = ca.__object__;

            var value = obj.getValue(e);
            obj.value = value;
            obj.grow();
        }
    };
&lt;/script&gt;
</pre>



    
    <p>
        <a href="./">&laquo; Back</a>
    </p>
</body>
</html>